# 导入相关库
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMainWindow
# 导入创建的主窗口python类
from mainwindow import Ui_MainWindow

class MyMainWindow(QMainWindow):
    '''
    自定义一个MyMainWindow类（继承了QMainWindow类）
    '''
    def __init__(self):
        '''
        初始化方法
        '''
        # 调用父类 `QMainWindow` 的初始化方法，确保父类的所有功能都被正确初始化。
        QMainWindow.__init__(self)
        # 创建一个 `Ui_MainWindow` 类的实例，并将其赋值给 `self.ui`。这个实例将用于设置窗口的界面
        self.ui = Ui_MainWindow()
        # 调用 `Ui_MainWindow` 实例的 `setupUi` 方法，并传入当前 `MyMainWindow` 类的实例作为参数。这个方法将设置窗口的属性和添加部件（如按钮、文本框等）。
        self.ui.setupUi(self)

# 主程序入口
if __name__ == '__main__':
    # 创建一个 `QApplication` 对象。在 PyQt5 中，每个 GUI 应用程序都需要一个 `QApplication` 对象。`sys.argv` 是一个从命令行传递给 Python 脚本的参数列表。
    app = QtWidgets.QApplication(sys.argv)
    # 创建一个 `MyMainWindow` 类的实例。
    mainWin = MyMainWindow()
    # 显示窗口
    mainWin.show()
    # 进入应用程序的主事件循环。这个方法会等待，直到应用程序关闭，然后返回一个退出代码。`sys.exit()` 确保一个干净的退出，返回 `app.exec_()` 的结果。
    sys.exit(app.exec_())